This document presents the subset of the figures used for paper about monitoring.
library(dplyr)
library(tidyr)
library(ggplot2)
library(ggmap)
library(scatterpie)
library(rgdal)
Sampling data correspond to the data collected with kobo and previously cleaned with the script 1_preprocesamiento_datos_kobo.Rmd.
# load data
muestreo_tidy<-read.delim("../data/kobo/muestreo_dic2020_tidy.txt", header = TRUE)
parcelas_tidy<-read.delim("../data/kobo/parcelas_dic2020_tidy.txt", header = TRUE)
# pivot long parcelas data to have health data as a single variable
parcelas_long<-pivot_longer(parcelas_tidy,
cols = healthy:worm,
names_to = "tree_health_simplified",
values_to = "n_trees")
Data analyzed here correspond only to the trees that were approved during the validation by manually reviewing the photographs in kobotoolbox. Total of 1778 trees sampled, 1765 were approved in the validation.
muestreo_tidy<- filter(muestreo_tidy, X_validation_status=="validation_status_approved")
Color palettes:
# Make a nice color pallete and legend order for all plots
my_cols=c("darkgreen",
"darkred",
"orangered1",
"cadetblue",
"tan",
"beige",
# "burlywood4",
"coral",
"aquamarine3",
"gray70",
"black")
desired_order=c("healthy",
"ozone",
"ozone_and_other",
"others_combined",
"drougth",
"fungi",
# "insect",
"worm",
"acid_rain",
"other",
"dead")
desired_names=c("healthy",
"ozone",
"ozone and other",
"others combined",
"drougth",
"fungi",
# "insect",
"worm",
"acid rain",
"other",
"dead")
# For ozone damage percentage
my_cols2<-c("gold2", "chocolate1", "orangered", "red4", "darkorchid4")
desired_order_percentage<-c("less than 10%", "10 to 40%", "40 to 50%", "50 to 70%", "more than 70%")
Multiplot fun:
# Multiple plot function
#
# ggplot objects can be passed in ..., or to plotlist (as a list of ggplot objects)
# - cols: Number of columns in layout
# - layout: A matrix specifying the layout. If present, 'cols' is ignored.
#
# If the layout is something like matrix(c(1,2,3,3), nrow=2, byrow=TRUE),
# then plot 1 will go in the upper left, 2 will go in the upper right, and
# 3 will go all the way across the bottom.
#
multiplot <- function(..., plotlist=NULL, file, cols=1, layout=NULL) {
library(grid)
# Make a list from the ... arguments and plotlist
plots <- c(list(...), plotlist)
numPlots = length(plots)
# If layout is NULL, then use 'cols' to determine layout
if (is.null(layout)) {
# Make the panel
# ncol: Number of columns of plots
# nrow: Number of rows needed, calculated from # of cols
layout <- matrix(seq(1, cols * ceiling(numPlots/cols)),
ncol = cols, nrow = ceiling(numPlots/cols))
}
if (numPlots==1) {
print(plots[[1]])
} else {
# Set up the page
grid.newpage()
pushViewport(viewport(layout = grid.layout(nrow(layout), ncol(layout))))
# Make each plot, in the correct location
for (i in 1:numPlots) {
# Get the i,j matrix positions of the regions that contain this subplot
matchidx <- as.data.frame(which(layout == i, arr.ind = TRUE))
print(plots[[i]], vp = viewport(layout.pos.row = matchidx$row,
layout.pos.col = matchidx$col))
}
}
}
Configure google api for maps:
# code adapted from https://rgraphgallery.blogspot.com/2013/04/rg-plot-pie-over-g0ogle-map.html
## configure google api
# You first need to register your api key in https://cloud.google.com/maps-platform/#get-started and follow instructions. The geocoding API is a free service, but you nevertheless need to associate a credit card with the account. Please note that the Google Maps API is not a free service. There is a free allowance of 40,000 calls to the geocoding API per month, and beyond that calls are $0.005 each.
# after you obtain your api, save it in /scripts/api_key.api (not shown in this repo por obvious reasons).
# if you get the following error when running get_map():
#"Error in aperm.default(map, c(2, 1, 3)) :
# invalid first argument, must be an array "
# check this troubleshooting: https://rgraphgallery.blogspot.com/2013/04/rg-plot-pie-over-google-map.html
## load and register api
api <- readLines("api_key.api")
register_google(key = api)
# get cdmx shape
CDMX<-readOGR(dsn="../data/spatial", layer="CDMX")
## OGR data source with driver: ESRI Shapefile
## Source: "/Users/veronicareyesgalindo/Documents/GitHub/monitoreo-oyameles/data/spatial", layer: "CDMX"
## with 1 features
## It has 8 fields
CDMX<-fortify(CDMX)
# get PNDL shape
PNDL<-readOGR(dsn="../data/spatial", layer="Desierto_Leones_Geo_ITRF08")
## Warning in OGRSpatialRef(dsn, layer, morphFromESRI = morphFromESRI, dumpSRS =
## dumpSRS, : Discarded datum International_Terrestrial_Reference_Frame_2008 in
## Proj4 definition: +proj=longlat +ellps=GRS80 +no_defs
## OGR data source with driver: ESRI Shapefile
## Source: "/Users/veronicareyesgalindo/Documents/GitHub/monitoreo-oyameles/data/spatial", layer: "Desierto_Leones_Geo_ITRF08"
## with 1 features
## It has 14 fields
PNDL<-fortify(PNDL)
# get background map
sat_map = get_map(location = c(lon = -99.133549, lat = 19.3), zoom = 10, maptype = 'terrain-background', source = "google")
## plot
p_a<-ggmap(sat_map) +
geom_polygon(data = CDMX,
aes(x = long, y = lat, group = group),
color="black", fill=NA, size=1.5) +
geom_polygon(data = PNDL,
aes(x = long, y = lat, group = group),
color="red", fill=NA, size=1.5) +
geom_point(aes(x=-98.95, y=19.6),
shape=0, stroke=2, size=5, color="black") +
geom_point(aes(x=-98.95, y=19.55),
shape=0, stroke=2, size=5, color="red") +
geom_text(aes(label="CDMX", x=-98.87, y=19.6),
color="Black", fontface="bold", size=5) +
geom_text(aes(label="PNDL", x=-98.87, y=19.55),
color="Black", fontface="bold", size=5) +
theme(text = element_text(size = 20))+
ggtitle("a)")
# get background map
sat_map = get_map(location = c(lon = -99.30, lat = 19.31), zoom = 13, maptype = 'satellite', source = "google")
## add towns names
towns<-data.frame(nombre=c("San Bartolo Ameyalco",
"Santa Rosa Xochiac",
"San Mateo Tlaltenango"),
long=c(-99.270, -99.29, -99.276),
lat=c(19.333, 19.325, 19.346))
## plot
p_b<-ggmap(sat_map) +
geom_polygon(data = PNDL,
aes(x = long, y = lat, group = group),
color="red", fill=NA, size=1.5) +
geom_point(data=towns, aes(x=long, y=lat), colour="red", size=1.5) +
geom_text(data=towns, aes(label=nombre, x=long, y=lat),
color="white", fontface="bold",
size=5, nudge_y=0.003) +
# add Cruz de Coloxtitla (CX), and Convento (Cn) landmarks
geom_text(aes(label="X", x=-99.3014, y=19.286068),
color="white", fontface="bold", size=4) +
geom_text(aes(label="C", x=-99.31, y=19.3133),
color="white", fontface="bold", size=4) +
theme(text = element_text(size = 20))+
ggtitle("b)")
## plot map
# get map
sat_map = get_map(location = c(lon = -99.3060, lat = 19.2909), zoom = 14, maptype = 'satellite', source = "google")
# plot sampled plots
p_c <- ggmap(sat_map)
p_c <- p_c + geom_point(data=parcelas_tidy,
aes(x=X_coordinates_longitude,
y=X_coordinates_latitude),
color="red") +
geom_text(data=parcelas_tidy,
aes(x=X_coordinates_longitude,
y=X_coordinates_latitude,
label=plot),
color="white",
check_overlap = TRUE,
hjust = 0, vjust=1, nudge_x = 0.0005,
size= 5) +
theme(text = element_text(size = 20))+
ggtitle("c)")
The following figure shows the total number of trees sampled in each 10x10 m plot, and how many of these are under some category of damage:
p_d <- ggplot(parcelas_long, aes(x=plot, y=n_trees, fill=tree_health_simplified)) +
geom_bar(stat="identity") +
scale_fill_manual(values= my_cols, breaks = desired_order,
labels= desired_names,
name= "Health category")
p_d <- p_d + theme_bw() +
labs(x="Plots", y= "Number of trees") +
theme(text = element_text(size = 20)) +
ggtitle("d)")
Multiplot
multiplot(p_a, p_c, p_b, p_d, cols=2)
p3 <- ggplot(muestreo_tidy, aes(x=tree_exposition,
fill=tree_health_simplified)) +
geom_bar(stat="count") +
scale_fill_manual(values= my_cols, breaks = desired_order,
labels= desired_order,
name= "Status of healthy") +
facet_grid(. ~ reforested,
labeller = as_labeller(c("yes" = "reforested",
"no" = "natural"))) +
scale_x_discrete(breaks=c("cover", "exposed"),
labels=c("cover", "exposed"))
p3 + theme_bw() +
theme(plot.title = element_text(lineheight=1.1, face="bold")) +
labs(x="", y= "Number of trees") +
theme(text = element_text(size = 20))
p <- filter(muestreo_tidy, tree_heigth<15, tree_nodes>0) %>%
ggplot(.) +
scale_fill_manual(values= my_cols, breaks = desired_order,
labels= desired_order,
name= "Status of healthy") +
theme_bw()
p4_a <- p + geom_histogram(aes(x=tree_nodes,
fill=tree_health_simplified)) +
labs(x="Number of nodes", y= "Number of trees") +
theme(text = element_text(size = 20)) +
theme(plot.title = element_text(lineheight=1.1, face="bold"))+
ggtitle("a)")
p4_a
## base data
p_od<- muestreo_tidy %>% filter(!is.na(ozone_damage_percentage)) %>%
ggplot() +
scale_fill_manual(values= my_cols2,
breaks = desired_order_percentage,
labels = c("less 10%", "10 to 40%", "40 to 50%",
"50 to 70%", "more 70%"),
name= "Tree ozone damage percentage") +
theme_bw() + theme(text = element_text(size = 20))
p4_b <- p_od +
geom_bar(aes(x=tree_nodes,
fill=ozone_damage_percentage)) +
labs(x="Number of nodes", y= "Number of trees") +
theme(plot.title = element_text(lineheight=1.1, face="bold"))+
ggtitle("b)")
p4_b
## Warning: Removed 103 rows containing non-finite values (stat_count).
# Filtrar por categorÃa de daño
condition_HOO<-muestreo_tidy%>%
filter(tree_health_simplified == "healthy" | tree_health_simplified == "ozone" | tree_health_simplified == "ozone_and_other" )
condition_HOO$tree_health_simplified <- as.factor(condition_HOO$tree_health_simplified)
# Plot
p4_c<-condition_HOO%>%
ggplot(aes(y= tree_nodes, x= tree_health_simplified))+
geom_boxplot(color="grey", notch = F)+
scale_color_manual(values= my_cols)+
geom_point(position="jitter",aes(color = tree_health_simplified), alpha=0.5)+
theme(axis.text.x=element_text(colour="black", size = 8,
angle = 45, vjust = 1, hjust = 1),
axis.text.y=element_text(colour="black", size = 7, angle = 0))+
xlab("Status of healthy")+ ylab("Tree nodes")+
labs(color = "Status of healthy")+
ggtitle("c)")
p4_c
## Warning: Removed 147 rows containing non-finite values (stat_boxplot).
## Warning: Removed 147 rows containing missing values (geom_point).
# Plot
muestreo_tidy$ozone_damage_percentage
## [1] NA NA NA NA
## [5] NA "10 to 40%" "less than 10%" "10 to 40%"
## [9] NA NA NA NA
## [13] NA NA NA NA
## [17] NA "less than 10%" NA NA
## [21] NA NA NA NA
## [25] NA NA NA NA
## [29] NA NA NA NA
## [33] NA NA NA NA
## [37] NA NA NA NA
## [41] NA NA NA NA
## [45] NA NA NA NA
## [49] NA NA NA NA
## [53] NA NA NA NA
## [57] NA NA NA NA
## [61] NA NA "10 to 40%" NA
## [65] NA NA "10 to 40%" NA
## [69] NA "less than 10%" NA NA
## [73] "50 to 70%" NA NA "less than 10%"
## [77] "less than 10%" NA NA NA
## [81] NA "50 to 70%" "more than 70%" "50 to 70%"
## [85] "40 to 50%" NA NA NA
## [89] NA NA "less than 10%" NA
## [93] NA "less than 10%" "less than 10%" "less than 10%"
## [97] "less than 10%" NA NA NA
## [101] "10 to 40%" "10 to 40%" NA NA
## [105] NA "less than 10%" NA "10 to 40%"
## [109] NA NA "50 to 70%" "50 to 70%"
## [113] NA NA NA NA
## [117] NA NA "less than 10%" NA
## [121] NA NA NA NA
## [125] NA NA NA NA
## [129] NA NA "less than 10%" "less than 10%"
## [133] NA NA "10 to 40%" NA
## [137] NA NA NA "40 to 50%"
## [141] NA NA NA NA
## [145] NA NA NA NA
## [149] NA NA NA NA
## [153] NA "less than 10%" NA NA
## [157] NA NA NA NA
## [161] NA NA "50 to 70%" NA
## [165] NA "50 to 70%" "less than 10%" "less than 10%"
## [169] NA NA NA NA
## [173] "less than 10%" NA NA NA
## [177] NA NA NA NA
## [181] NA NA NA NA
## [185] "less than 10%" NA NA "less than 10%"
## [189] "40 to 50%" "less than 10%" "less than 10%" "10 to 40%"
## [193] "10 to 40%" NA NA NA
## [197] NA NA NA NA
## [201] NA NA NA NA
## [205] "less than 10%" "40 to 50%" "50 to 70%" "40 to 50%"
## [209] "40 to 50%" "50 to 70%" "40 to 50%" "50 to 70%"
## [213] "50 to 70%" "less than 10%" "10 to 40%" NA
## [217] "less than 10%" "more than 70%" "less than 10%" NA
## [221] "less than 10%" "50 to 70%" NA "40 to 50%"
## [225] NA NA "10 to 40%" "10 to 40%"
## [229] "10 to 40%" NA "10 to 40%" "less than 10%"
## [233] "less than 10%" "less than 10%" NA NA
## [237] NA NA "less than 10%" NA
## [241] "less than 10%" "40 to 50%" "10 to 40%" NA
## [245] NA "10 to 40%" "less than 10%" "10 to 40%"
## [249] "10 to 40%" "10 to 40%" "less than 10%" "10 to 40%"
## [253] NA "less than 10%" NA "less than 10%"
## [257] NA NA NA NA
## [261] NA NA NA NA
## [265] "10 to 40%" "10 to 40%" NA "10 to 40%"
## [269] NA NA NA "10 to 40%"
## [273] NA "10 to 40%" NA "50 to 70%"
## [277] NA NA NA NA
## [281] NA "less than 10%" NA NA
## [285] NA NA "less than 10%" NA
## [289] NA NA NA "10 to 40%"
## [293] NA NA NA "10 to 40%"
## [297] "less than 10%" NA NA NA
## [301] NA NA NA NA
## [305] NA NA NA NA
## [309] NA "10 to 40%" NA NA
## [313] NA NA NA "less than 10%"
## [317] "less than 10%" "10 to 40%" "less than 10%" "10 to 40%"
## [321] NA NA "less than 10%" "less than 10%"
## [325] "10 to 40%" "10 to 40%" NA "10 to 40%"
## [329] NA NA NA NA
## [333] NA NA "less than 10%" "10 to 40%"
## [337] "10 to 40%" "10 to 40%" NA NA
## [341] "less than 10%" NA NA NA
## [345] NA NA "less than 10%" "less than 10%"
## [349] "less than 10%" NA NA NA
## [353] NA NA NA NA
## [357] NA NA NA NA
## [361] NA NA NA NA
## [365] NA NA NA "10 to 40%"
## [369] NA NA "10 to 40%" "40 to 50%"
## [373] "40 to 50%" "50 to 70%" "less than 10%" "less than 10%"
## [377] "less than 10%" "less than 10%" NA NA
## [381] NA NA NA NA
## [385] NA NA "10 to 40%" "10 to 40%"
## [389] "less than 10%" "50 to 70%" "less than 10%" "less than 10%"
## [393] "less than 10%" NA NA NA
## [397] NA NA NA NA
## [401] NA "less than 10%" "10 to 40%" NA
## [405] "more than 70%" NA NA NA
## [409] "10 to 40%" NA NA NA
## [413] "40 to 50%" NA NA NA
## [417] NA NA NA NA
## [421] NA NA "less than 10%" NA
## [425] "50 to 70%" "more than 70%" "more than 70%" "more than 70%"
## [429] "less than 10%" "10 to 40%" "10 to 40%" NA
## [433] "50 to 70%" "40 to 50%" NA NA
## [437] "50 to 70%" "50 to 70%" "50 to 70%" "50 to 70%"
## [441] "50 to 70%" "10 to 40%" NA NA
## [445] NA "less than 10%" NA NA
## [449] NA NA NA NA
## [453] NA NA NA NA
## [457] "less than 10%" NA NA NA
## [461] "less than 10%" "less than 10%" NA NA
## [465] "10 to 40%" NA NA NA
## [469] NA NA NA NA
## [473] NA NA NA "10 to 40%"
## [477] "less than 10%" NA "10 to 40%" NA
## [481] NA NA NA NA
## [485] NA "less than 10%" NA NA
## [489] "10 to 40%" NA NA NA
## [493] NA NA NA NA
## [497] NA NA "10 to 40%" NA
## [501] "10 to 40%" NA "10 to 40%" NA
## [505] NA "less than 10%" "10 to 40%" "10 to 40%"
## [509] "10 to 40%" NA "less than 10%" "10 to 40%"
## [513] NA NA "10 to 40%" NA
## [517] "less than 10%" NA "10 to 40%" NA
## [521] "10 to 40%" "10 to 40%" NA NA
## [525] NA NA "less than 10%" NA
## [529] NA NA NA NA
## [533] NA "less than 10%" NA NA
## [537] NA NA NA "10 to 40%"
## [541] "less than 10%" "less than 10%" NA "less than 10%"
## [545] NA NA NA NA
## [549] NA NA NA NA
## [553] NA NA NA "more than 70%"
## [557] "more than 70%" "more than 70%" "more than 70%" "10 to 40%"
## [561] "more than 70%" "10 to 40%" "10 to 40%" NA
## [565] "50 to 70%" "10 to 40%" "less than 10%" "10 to 40%"
## [569] "less than 10%" NA "10 to 40%" "10 to 40%"
## [573] "less than 10%" "50 to 70%" "more than 70%" NA
## [577] NA "10 to 40%" NA NA
## [581] NA NA NA NA
## [585] NA NA "less than 10%" NA
## [589] NA NA "10 to 40%" NA
## [593] "10 to 40%" "10 to 40%" "40 to 50%" NA
## [597] NA "10 to 40%" "40 to 50%" "40 to 50%"
## [601] NA "10 to 40%" "40 to 50%" "40 to 50%"
## [605] NA "less than 10%" NA NA
## [609] NA NA "40 to 50%" "10 to 40%"
## [613] "10 to 40%" NA NA NA
## [617] NA "less than 10%" NA NA
## [621] NA NA NA NA
## [625] NA NA NA NA
## [629] "less than 10%" "40 to 50%" NA "40 to 50%"
## [633] NA NA NA NA
## [637] NA NA NA NA
## [641] NA NA NA NA
## [645] NA NA NA NA
## [649] NA NA NA NA
## [653] NA NA NA "40 to 50%"
## [657] NA NA NA NA
## [661] NA NA NA NA
## [665] NA NA NA NA
## [669] NA NA NA "10 to 40%"
## [673] NA NA NA NA
## [677] NA NA NA NA
## [681] NA NA NA NA
## [685] NA NA NA NA
## [689] NA NA NA NA
## [693] "40 to 50%" NA NA NA
## [697] NA NA NA NA
## [701] NA NA NA NA
## [705] NA NA NA NA
## [709] NA NA "less than 10%" "less than 10%"
## [713] "10 to 40%" "10 to 40%" NA NA
## [717] NA NA "less than 10%" NA
## [721] NA NA NA NA
## [725] NA NA NA NA
## [729] NA NA NA NA
## [733] NA NA NA NA
## [737] NA NA "less than 10%" NA
## [741] NA NA "10 to 40%" "less than 10%"
## [745] NA NA NA "40 to 50%"
## [749] "less than 10%" NA NA NA
## [753] NA "10 to 40%" NA NA
## [757] "10 to 40%" "10 to 40%" "less than 10%" NA
## [761] "10 to 40%" NA "less than 10%" "less than 10%"
## [765] "10 to 40%" NA "10 to 40%" NA
## [769] NA NA NA "10 to 40%"
## [773] NA "10 to 40%" NA NA
## [777] NA "less than 10%" "10 to 40%" "less than 10%"
## [781] NA "10 to 40%" "less than 10%" NA
## [785] NA NA NA NA
## [789] NA NA NA NA
## [793] "less than 10%" NA NA NA
## [797] NA NA NA NA
## [801] "10 to 40%" "less than 10%" NA "10 to 40%"
## [805] NA NA "10 to 40%" "10 to 40%"
## [809] NA NA NA NA
## [813] "10 to 40%" NA "10 to 40%" NA
## [817] NA NA NA NA
## [821] NA "10 to 40%" "less than 10%" "10 to 40%"
## [825] "10 to 40%" "10 to 40%" NA "10 to 40%"
## [829] NA NA "less than 10%" "less than 10%"
## [833] NA "less than 10%" "less than 10%" NA
## [837] NA "less than 10%" "less than 10%" "10 to 40%"
## [841] NA NA "10 to 40%" "less than 10%"
## [845] "10 to 40%" NA "less than 10%" NA
## [849] NA NA NA NA
## [853] NA NA NA NA
## [857] "10 to 40%" "10 to 40%" "10 to 40%" NA
## [861] NA NA NA NA
## [865] "50 to 70%" "50 to 70%" NA NA
## [869] NA NA "more than 70%" "more than 70%"
## [873] "50 to 70%" "50 to 70%" "more than 70%" NA
## [877] NA "more than 70%" NA NA
## [881] "more than 70%" "50 to 70%" "50 to 70%" "50 to 70%"
## [885] "more than 70%" "50 to 70%" "more than 70%" "more than 70%"
## [889] "50 to 70%" "more than 70%" "more than 70%" NA
## [893] "50 to 70%" NA "more than 70%" "40 to 50%"
## [897] "10 to 40%" "more than 70%" "more than 70%" "50 to 70%"
## [901] "40 to 50%" NA "40 to 50%" "less than 10%"
## [905] "40 to 50%" "50 to 70%" "40 to 50%" "40 to 50%"
## [909] "less than 10%" "10 to 40%" "10 to 40%" "10 to 40%"
## [913] "10 to 40%" "40 to 50%" "50 to 70%" "less than 10%"
## [917] NA "50 to 70%" "50 to 70%" "50 to 70%"
## [921] "less than 10%" "10 to 40%" "10 to 40%" "50 to 70%"
## [925] "10 to 40%" "40 to 50%" "10 to 40%" "50 to 70%"
## [929] "50 to 70%" "50 to 70%" "10 to 40%" "50 to 70%"
## [933] "10 to 40%" "10 to 40%" "10 to 40%" "10 to 40%"
## [937] "less than 10%" "less than 10%" "less than 10%" "40 to 50%"
## [941] "less than 10%" "10 to 40%" "40 to 50%" "50 to 70%"
## [945] "10 to 40%" "10 to 40%" "50 to 70%" "50 to 70%"
## [949] "10 to 40%" "10 to 40%" "less than 10%" NA
## [953] "40 to 50%" "less than 10%" "less than 10%" NA
## [957] NA "10 to 40%" NA NA
## [961] NA NA "less than 10%" "less than 10%"
## [965] "less than 10%" "less than 10%" NA NA
## [969] "less than 10%" NA NA "less than 10%"
## [973] "less than 10%" "40 to 50%" "10 to 40%" NA
## [977] NA "less than 10%" "less than 10%" "10 to 40%"
## [981] NA NA NA NA
## [985] NA "less than 10%" "less than 10%" NA
## [989] "40 to 50%" NA "50 to 70%" "10 to 40%"
## [993] "40 to 50%" "less than 10%" NA NA
## [997] NA NA "less than 10%" NA
## [1001] "10 to 40%" "10 to 40%" "less than 10%" "less than 10%"
## [1005] NA NA "less than 10%" "less than 10%"
## [1009] "10 to 40%" "less than 10%" "10 to 40%" "10 to 40%"
## [1013] "10 to 40%" "less than 10%" "less than 10%" "less than 10%"
## [1017] "less than 10%" NA "10 to 40%" "less than 10%"
## [1021] NA NA NA NA
## [1025] NA NA NA NA
## [1029] NA NA NA "less than 10%"
## [1033] NA "less than 10%" NA NA
## [1037] NA NA NA "less than 10%"
## [1041] "less than 10%" NA NA NA
## [1045] NA NA NA NA
## [1049] "less than 10%" NA "10 to 40%" "10 to 40%"
## [1053] "10 to 40%" "10 to 40%" "less than 10%" NA
## [1057] NA NA NA NA
## [1061] "less than 10%" "less than 10%" "less than 10%" "10 to 40%"
## [1065] "10 to 40%" "10 to 40%" NA NA
## [1069] NA NA "10 to 40%" "less than 10%"
## [1073] NA "less than 10%" NA "less than 10%"
## [1077] "less than 10%" "less than 10%" "less than 10%" NA
## [1081] "10 to 40%" "10 to 40%" NA "less than 10%"
## [1085] NA NA NA NA
## [1089] NA "40 to 50%" "less than 10%" NA
## [1093] NA NA NA NA
## [1097] NA NA NA NA
## [1101] NA NA NA NA
## [1105] NA NA NA "40 to 50%"
## [1109] NA "10 to 40%" NA "10 to 40%"
## [1113] NA NA NA "less than 10%"
## [1117] NA NA "40 to 50%" NA
## [1121] NA "10 to 40%" "50 to 70%" NA
## [1125] NA NA NA NA
## [1129] NA NA NA NA
## [1133] NA NA NA NA
## [1137] NA NA "50 to 70%" NA
## [1141] NA NA NA NA
## [1145] NA NA NA NA
## [1149] NA NA "10 to 40%" NA
## [1153] NA NA NA "10 to 40%"
## [1157] NA NA NA NA
## [1161] NA NA NA NA
## [1165] NA NA NA NA
## [1169] NA NA NA NA
## [1173] NA NA NA NA
## [1177] NA NA NA NA
## [1181] NA NA NA NA
## [1185] NA NA NA NA
## [1189] NA NA NA "less than 10%"
## [1193] "10 to 40%" NA "more than 70%" NA
## [1197] NA "less than 10%" NA "less than 10%"
## [1201] NA NA NA NA
## [1205] NA NA NA NA
## [1209] NA NA NA NA
## [1213] "10 to 40%" NA NA "10 to 40%"
## [1217] "50 to 70%" "50 to 70%" NA NA
## [1221] "10 to 40%" "10 to 40%" "50 to 70%" "50 to 70%"
## [1225] NA "50 to 70%" "50 to 70%" "50 to 70%"
## [1229] NA NA NA NA
## [1233] NA NA "40 to 50%" "50 to 70%"
## [1237] NA "10 to 40%" "50 to 70%" NA
## [1241] "50 to 70%" "50 to 70%" "50 to 70%" "50 to 70%"
## [1245] NA "40 to 50%" NA NA
## [1249] "50 to 70%" "50 to 70%" "10 to 40%" "40 to 50%"
## [1253] "10 to 40%" "10 to 40%" "more than 70%" "more than 70%"
## [1257] "50 to 70%" "50 to 70%" "50 to 70%" NA
## [1261] NA "50 to 70%" "50 to 70%" "50 to 70%"
## [1265] "50 to 70%" NA "50 to 70%" "40 to 50%"
## [1269] "40 to 50%" "50 to 70%" "40 to 50%" "50 to 70%"
## [1273] "more than 70%" NA NA NA
## [1277] NA NA NA "less than 10%"
## [1281] NA "50 to 70%" NA NA
## [1285] NA "less than 10%" "more than 70%" NA
## [1289] NA NA NA NA
## [1293] NA NA NA NA
## [1297] NA "10 to 40%" "10 to 40%" "more than 70%"
## [1301] "50 to 70%" "50 to 70%" "50 to 70%" "more than 70%"
## [1305] NA "less than 10%" "less than 10%" NA
## [1309] NA NA "less than 10%" NA
## [1313] NA "less than 10%" NA NA
## [1317] NA NA NA NA
## [1321] NA NA NA NA
## [1325] "40 to 50%" "more than 70%" "40 to 50%" NA
## [1329] "10 to 40%" "50 to 70%" "50 to 70%" NA
## [1333] NA NA NA NA
## [1337] NA NA NA NA
## [1341] NA NA NA NA
## [1345] NA NA NA NA
## [1349] NA NA NA NA
## [1353] NA NA NA NA
## [1357] NA NA NA NA
## [1361] NA NA NA NA
## [1365] NA NA NA NA
## [1369] NA NA NA NA
## [1373] NA NA NA NA
## [1377] NA NA NA NA
## [1381] NA NA NA "50 to 70%"
## [1385] "50 to 70%" "50 to 70%" "40 to 50%" NA
## [1389] "10 to 40%" NA NA NA
## [1393] "less than 10%" "40 to 50%" "10 to 40%" "40 to 50%"
## [1397] "50 to 70%" "50 to 70%" "50 to 70%" "40 to 50%"
## [1401] "more than 70%" NA NA "10 to 40%"
## [1405] NA "10 to 40%" NA NA
## [1409] "10 to 40%" "10 to 40%" NA NA
## [1413] NA NA NA "10 to 40%"
## [1417] NA "10 to 40%" NA NA
## [1421] NA NA NA NA
## [1425] "less than 10%" NA NA NA
## [1429] "less than 10%" NA NA NA
## [1433] NA NA NA NA
## [1437] NA "less than 10%" NA NA
## [1441] NA NA "less than 10%" NA
## [1445] "10 to 40%" NA "10 to 40%" NA
## [1449] NA NA NA NA
## [1453] NA NA NA NA
## [1457] "less than 10%" "less than 10%" NA NA
## [1461] NA NA "10 to 40%" "40 to 50%"
## [1465] NA NA NA NA
## [1469] "10 to 40%" NA NA NA
## [1473] NA "less than 10%" "less than 10%" "10 to 40%"
## [1477] NA "10 to 40%" NA "50 to 70%"
## [1481] "50 to 70%" "40 to 50%" "40 to 50%" NA
## [1485] NA "40 to 50%" NA NA
## [1489] NA NA NA NA
## [1493] NA NA "less than 10%" "40 to 50%"
## [1497] NA NA "10 to 40%" NA
## [1501] NA "10 to 40%" "40 to 50%" "40 to 50%"
## [1505] "50 to 70%" NA NA "40 to 50%"
## [1509] "less than 10%" "40 to 50%" "40 to 50%" "40 to 50%"
## [1513] NA "40 to 50%" "10 to 40%" NA
## [1517] NA "40 to 50%" "40 to 50%" NA
## [1521] NA "40 to 50%" NA NA
## [1525] NA "50 to 70%" "50 to 70%" NA
## [1529] "50 to 70%" NA NA NA
## [1533] "10 to 40%" "50 to 70%" NA "40 to 50%"
## [1537] NA NA NA NA
## [1541] "50 to 70%" NA NA NA
## [1545] NA "50 to 70%" "40 to 50%" "50 to 70%"
## [1549] "50 to 70%" "50 to 70%" "40 to 50%" NA
## [1553] "50 to 70%" NA NA "40 to 50%"
## [1557] "10 to 40%" NA "10 to 40%" NA
## [1561] NA NA "less than 10%" "less than 10%"
## [1565] "less than 10%" NA "less than 10%" NA
## [1569] NA NA NA "less than 10%"
## [1573] "less than 10%" NA NA NA
## [1577] NA "less than 10%" "less than 10%" "less than 10%"
## [1581] NA NA "less than 10%" "less than 10%"
## [1585] "less than 10%" NA NA NA
## [1589] NA NA "less than 10%" "less than 10%"
## [1593] NA NA NA "less than 10%"
## [1597] "less than 10%" NA "less than 10%" NA
## [1601] "less than 10%" NA NA NA
## [1605] "40 to 50%" NA "less than 10%" NA
## [1609] "less than 10%" "less than 10%" "less than 10%" NA
## [1613] NA NA NA "less than 10%"
## [1617] NA NA NA NA
## [1621] NA NA NA NA
## [1625] NA NA "less than 10%" NA
## [1629] NA NA NA NA
## [1633] NA NA NA "less than 10%"
## [1637] NA NA NA NA
## [1641] NA NA NA NA
## [1645] NA NA NA NA
## [1649] NA NA NA NA
## [1653] NA NA NA NA
## [1657] NA NA NA NA
## [1661] NA NA NA NA
## [1665] NA NA NA NA
## [1669] NA NA NA NA
## [1673] NA NA NA NA
## [1677] NA NA NA NA
## [1681] NA NA NA NA
## [1685] NA NA NA NA
## [1689] NA NA "less than 10%" NA
## [1693] NA NA NA NA
## [1697] NA NA NA NA
## [1701] NA NA "less than 10%" "less than 10%"
## [1705] NA NA NA NA
## [1709] NA NA NA NA
## [1713] NA NA "less than 10%" "10 to 40%"
## [1717] "less than 10%" "less than 10%" "less than 10%" "less than 10%"
## [1721] NA "less than 10%" NA "10 to 40%"
## [1725] NA "10 to 40%" "less than 10%" "less than 10%"
## [1729] "less than 10%" NA "less than 10%" "less than 10%"
## [1733] "less than 10%" NA NA NA
## [1737] NA NA NA NA
## [1741] "less than 10%" NA "less than 10%" "less than 10%"
## [1745] "less than 10%" NA NA NA
## [1749] NA NA NA NA
## [1753] "less than 10%" "less than 10%" "less than 10%" "less than 10%"
## [1757] "less than 10%" "less than 10%" "less than 10%" NA
## [1761] NA NA "10 to 40%" NA
## [1765] NA
p4_d<-muestreo_tidy%>%
ggplot(aes(y= tree_nodes, x= ozone_damage_percentage))+
geom_boxplot(color="grey", notch = F)+
scale_color_manual(values= my_cols2)+
geom_point(position="jitter",aes(color = ozone_damage_percentage), alpha=0.5)+
theme(axis.text.x=element_text(colour="black", size = 8,
angle = 45, vjust = 1, hjust = 1),
axis.text.y=element_text(colour="black", size = 7, angle = 0))+
xlab("ozone damage percentage")+ ylab("Tree nodes")+
labs(color = "ozone damage percentage")+
ggtitle("d)")
p4_d
## Warning: Removed 191 rows containing non-finite values (stat_boxplot).
## Warning: Removed 191 rows containing missing values (geom_point).
Multiplot
multiplot(p4_a, p4_c, p4_b, p4_d, cols=2)
## Warning: Removed 147 rows containing non-finite values (stat_boxplot).
## Warning: Removed 147 rows containing missing values (geom_point).
## Warning: Removed 103 rows containing non-finite values (stat_count).
## Warning: Removed 191 rows containing non-finite values (stat_boxplot).
## Warning: Removed 191 rows containing missing values (geom_point).